package br.com.curso.relatoriobancario;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

public class FiltroAberturaMesCorrente extends Filtro {

	public FiltroAberturaMesCorrente() {}
	
	public FiltroAberturaMesCorrente (Filtro outroFiltro) {
		super(outroFiltro);
	}
	
	@Override
	public List<Conta> filtra(List<Conta> contas) {
		List<Conta> malhaFina = new ArrayList<Conta>();
		Calendar calendarAtual = Calendar.getInstance();
		Calendar calendarConta = Calendar.getInstance();
		int mesAtual = calendarAtual.get(Calendar.MONTH);
		int anoAtual = calendarAtual.get(Calendar.YEAR);

		for (Conta conta : contas) {
			calendarConta.setTime(conta.getDataAbertura());
			int mesAbertura = calendarConta.get(Calendar.MONTH);
			int anoAbertura = calendarConta.get(Calendar.YEAR);
			if (mesAbertura == mesAtual && anoAbertura == anoAtual) {
				malhaFina.add(conta);
			}
		}
		malhaFina.addAll(filtraOutroFiltro(contas));
		return malhaFina;
	}

}
